#pragma once
#include <assert.h>
#include <stdio.h>
#include <stdlib.h>

typedef int SLTDataType;

typedef struct SListNode
{
	SLTDataType data;
	struct SListNode* next;
}SLT;


void SListPrint(SLT* plist);

void SListPushBack(SLT** plist, SLTDataType x);

void SListPushFront(SLT** plist, SLTDataType x);

void SListPopBack(SLT** plist);

void SListPopFront(SLT** plist);

SLT* SListFind(SLT* plist, SLTDataType x);

void SListInsert(SLT** pphead, SLT* pos, SLTDataType x);

void SLTErase(SLT** pphead, SLT* pos);

void SLTInsertAfter(SLT* pos, SLTDataType x);

void SLTEraseAfter(SLT* pos);

void SListDestroy(SLT** pphead);

